This is the phylogenetic tree created from the set of rRNA sequences provided from Moodle, using NGPhylogeny.fr. It shows the evolutionary relatedness of the different species, based on their genetic sequences.
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.2 ✓ purrr 0.3.4
## ✓ tibble 3.0.4 ✓ dplyr 1.0.2
## ✓ tidyr 1.1.2 ✓ stringr 1.4.0
## ✓ readr 1.4.0 ✓ forcats 0.5.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("ggtree")
## Bioconductor version 3.11 (BiocManager 1.30.10), R 4.0.2 (2020-06-22)
## Installing package(s) 'ggtree'
##
## The downloaded binary packages are in
## /var/folders/sn/wxpqdvqj625755vvctp5n1s40000gn/T//Rtmpfoz9Jw/downloaded_packages
library(ggtree)
## Registered S3 method overwritten by 'treeio':
## method from
## root.phylo ape
## ggtree v2.2.4 For help: https://yulab-smu.github.io/treedata-book/
##
## If you use ggtree in published research, please cite the most appropriate paper(s):
##
## [36m-[39m Guangchuang Yu. Using ggtree to visualize data on tree-like structures. Current Protocols in Bioinformatics, 2020, 69:e96. doi:10.1002/cpbi.96
## [36m-[39m Guangchuang Yu, Tommy Tsan-Yuk Lam, Huachen Zhu, Yi Guan. Two methods for mapping and visualizing associated data on phylogeny using ggtree. Molecular Biology and Evolution 2018, 35(12):3041-3043. doi:10.1093/molbev/msy194
## [36m-[39m Guangchuang Yu, David Smith, Huachen Zhu, Yi Guan, Tommy Tsan-Yuk Lam. ggtree: an R package for visualization and annotation of phylogenetic trees with their covariates and other associated data. Methods in Ecology and Evolution 2017, 8(1):28-36. doi:10.1111/2041-210X.12628
##
## Attaching package: 'ggtree'
## The following object is masked from 'package:tidyr':
##
## expand
library(treeio)
## treeio v1.12.0 For help: https://yulab-smu.github.io/treedata-book/
##
## If you use treeio in published research, please cite:
##
## LG Wang, TTY Lam, S Xu, Z Dai, L Zhou, T Feng, P Guo, CW Dunn, BR Jones, T Bradley, H Zhu, Y Guan, Y Jiang, G Yu. treeio: an R package for phylogenetic tree input and output with richly annotated and associated data. Molecular Biology and Evolution 2020, 37(2):599-603. doi: 10.1093/molbev/msz240
library(ggplot2)
library(ggimage)
tree <- read.tree("tree_newick.nwk")
tree
##
## Phylogenetic tree with 13 tips and 12 internal nodes.
##
## Tip labels:
## A, B, C, D, E, F, ...
##
## Rooted; includes branch lengths.
# build a ggplot with a geom_tree
ggplot(tree) + geom_tree() + theme_tree()
# This is convenient shorthand
ggtree(tree)
# add a scale
ggtree(tree) + geom_treescale()
# or add the entire scale to the x axis with theme_tree2()
ggtree(tree) + theme_tree2()
ggtree(tree, branch.length="none")
ggtree(tree, branch.length="none", color="blue", size=2, linetype=3)
ggtree(tree, layout = "slanted")
ggtree(tree, layout= "circular")
ggtree(tree, layout = "circular", branch.length="none", color="red", size=2)
# create the basic plot
p <- ggtree(tree)
# add node points
p + geom_nodepoint()
# add tip points
p + geom_tippoint()
# Label the tips
p + geom_tiplab()
ggtree(tree) +
geom_nodepoint(alpha = 0.5, color = "orange", size = 3) +
geom_tippoint(color = "purple", shape = "diamond") +
geom_tiplab(color = "purple") +
ggtitle("Phylogenetic tree with new aesthetics")
# Internal node number
ggtree(tree) + geom_text(aes(label=node), hjust=-.3)
ggtree(tree) + geom_tiplab()
MRCA(tree, c("C", "E"))
## [1] 17
MRCA(tree, c("G", "H"))
## [1] 21
ggtree(tree) +
geom_cladelabel(node=17, label="Some random clade", color="red")
ggtree(tree) +
geom_tiplab() +
geom_cladelabel(node=17, label="Some random clade",
color="red2", offset=.8)
ggtree(tree) +
geom_tiplab() +
geom_cladelabel(node=17, label="Some random clade",
color="red2", offset=.8) +
geom_cladelabel(node=21, label="A different clade",
color="blue", offset=.8)
ggtree(tree) +
geom_tiplab() +
geom_cladelabel(node=17, label="Some random clade",
color="red2", offset=.8, align=TRUE) +
geom_cladelabel(node=21, label="A different clade",
color="blue", offset=.8, align=TRUE) +
theme_tree2() +
xlim(0, 70) +
theme_tree()
ggtree(tree) +
geom_tiplab() +
geom_hilight(node=17, fill="gold") +
geom_hilight(node=21, fill="purple")
ggtree(tree) +
geom_tiplab() +
geom_taxalink("E", "H", color="blue3") +
geom_taxalink("C", "G", color="orange2", curvature=-.9)
tree <- read.tree("tree_newick.nwk")
tree
##
## Phylogenetic tree with 13 tips and 12 internal nodes.
##
## Tip labels:
## A, B, C, D, E, F, ...
##
## Rooted; includes branch lengths.
#MRCA(tree, tip=c("B", "C")) #Node 19
#MRCA(tree, tip=c("L", "J")) #Node 23
ggtree(tree) + geom_tiplab() +
geom_hilight(node=19, fill="gold") +
geom_hilight(node=23, fill="pink") +
geom_cladelabel(node=17, label="Superclade 17",
color="red", offset=.8, align=TRUE) +
geom_taxalink("C", "E", color="gray", linetype = 2) +
geom_taxalink("G", "J", color="gray", linetype = 2) +
ggtitle("I'm Making an Actual Phylogenetic Tree!") +
theme_tree2()
# Read the data
tree <- read.beast("flu_tree_beast.tree")
# supply a most recent sampling date so you get the dates
# and add a scale bar
ggtree(tree, mrsd="2013-01-01") +
theme_tree2()
# Finally, add tip labels and adjust axis
ggtree(tree, mrsd="2013-01-01") +
theme_tree2() +
geom_tiplab(align=TRUE, linesize=.5) +
xlim(1990, 2020)
msaplot(p=ggtree(tree), fasta="flu_aasequence.fasta", window=c(150, 175))
set.seed(42)
trees <- lapply(rep(c(10, 25, 50, 100), 3), rtree)
class(trees) <- "multiPhylo"
ggtree(trees) + facet_wrap(~.id, scale="free", ncol=4) + ggtitle("Many trees. Such phylogenetics. Wow.")
# Generate a random tree with 30 tips
tree <- rtree(30)
# Make the original plot
p <- ggtree(tree)
# generate some random values for each tip label in the data
d1 <- data.frame(id=tree$tip.label, val=rnorm(30, sd=3))
# Make a second plot with the original, naming the new plot "dot",
# using the data you just created, with a point geom.
p2 <- facet_plot(p, panel="dot", data=d1, geom=geom_point, aes(x=val), color='red3')
# Make some more data with another random value.
d2 <- data.frame(id=tree$tip.label, value = abs(rnorm(30, mean=100, sd=50)))
# Now add to that second plot, this time using the new d2 data above,
# This time showing a bar segment, size 3, colored blue.
p3 <- facet_plot(p2, panel='bar', data=d2, geom=geom_segment,
aes(x=0, xend=value, y=y, yend=y), size=3, color='blue4')
# Show all three plots with a scale
p3 + theme_tree2()
# get phylopic
newick <- "((Pongo_abelii,(Gorilla_gorilla_gorilla,(Pan_paniscus,Pan_troglodytes)Pan,Homo_sapiens)Homininae)Hominidae,Nomascus_leucogenys)Hominoidea;"
tree <- read.tree(text=newick)
d <- ggimage::phylopic_uid(tree$tip.label)
d$body_mass = c(52, 114, 47, 45, 58, 6)
p <- ggtree(tree) %<+% d +
geom_tiplab(aes(image=uid, colour=body_mass), geom="phylopic", offset=2.5) +
geom_tiplab(aes(label=label), offset = .2) + xlim(NA, 7) +
scale_color_viridis_c()
p
library(treeio)
library(ggtree)
library(ape)
##
## Attaching package: 'ape'
## The following object is masked from 'package:treeio':
##
## drop.tip
## The following object is masked from 'package:ggtree':
##
## rotate
library(phyloseq)
newtree <- read_tree("Output_Tree.nhx")
newtree
##
## Phylogenetic tree with 21 tips and 19 internal nodes.
##
## Tip labels:
## Oryza_mitochondrion, Rhizobium_leguminosarum, Escherichia_coli, Burkholderia_cenocepacia, Chlorobium_chlorochromatii, Oryza_chloroplast, ...
##
## Unrooted; includes branch lengths.
ggtree(newtree) +
geom_text(aes(label = node), hjust = -.3)
ggtree(newtree, layout = "circular") +
geom_tiplab() +
geom_hilight(node = 34, fill = "gold") +
geom_hilight(node = 29, fill = "blue") +
geom_hilight(node = 22, fill = "purple", extend = -.8)